Parallel Haskell ( Preliminary Draft )
نویسنده
چکیده
MPP Haskell is a parallel implementation of the Haskell functional language for the Thinking Machines Inc. CM-5 large-scale distributed-memory multiprocessor. MPP Haskell is a derivative of GUM, a message-based parallel implementation of Haskell. GUM was carefully designed to minimise performance loss from low-bandwidth and high-latency communications; as an apparent consequence MPP Haskell, with the beneet of high-bandwidth and low-latency communications, achieves remarkably scalable performance. 1 Background Functional programming languages have long been touted as ideal for parallel implementation. Despite this fact, and the existence of numerous functional language implementations, very few parallel implementations have become generally available; further work in this direction seemed worthwhile. 1.1 Choice of Language Assuming the goal to be a parallel, non-strict, purely functional language implementation , and given sharply limited resources (man-hours), a practical course would be the port of an existing language implementation to a new platform. Two existing implementations were seriously considered, both high-quality, reasonably mature, and actively supported. The rst was Concurrent Clean from the University of Nigmegan 3]. One of its attractions was that it was already being ported to quite diverse hardware and software (OS) platforms, suggesting a careful design to make such ports relatively easy. While the Concurrent Clean team were agreeable to another port, their estimate of the work involved considerably exceeded the available resources. The other candidate was GUM, described by Trinder et al 5] as a freely available, portable, parallel implementation of the non-strict purely-functional language Haskell. Its use of PVM, a widely ported communications API and distributed computing infrastructure, for communication and task coordination was deliberately chosen to lessen the task of porting. GUM appeared to be a promising starting point.
منابع مشابه
Mpp Parallel Haskell Preliminary Results
Preliminary Results Kei Davis http://www.c3.lanl.gov/~kei/kei.html Abstract MPP Haskell is a parallel implementation of the lazy purely-functional language Haskell for the Thinking Machines Inc. CM-5 large-scale distributed-memory multiprocessor. MPP Haskell is a derivative of GUM, a message-based parallel implementation of Haskell. GUM was carefully designed to minimise performance loss from l...
متن کاملImplementing a High-Level Distributed-Memory Parallel Haskell in Haskell
We present the initial design, implementation and preliminary evaluation of a new distributed memory parallel Haskell, HdpH. The language is a shallowly embedded parallel extension of Haskell that supports high-level semiexplicit parallelism, is scalable, and has the potential for fault tolerance. The HdpH implementation is designed for maintainability without compromising performance too sever...
متن کاملGo-faster Haskell Or: Data-intensive Programming in Parallel Haskell Draft
We have recently constructed an integrated programming environment to support programming in Glasgow Parallel Haskell GpH. This paper descibes the construction of several data-intensive parallel programs using the environment. It focuses on a road-traac accident application because it is a real problem with real data, and is the rst non-trivial GpH program to achieve wall-clock speedups | a fac...
متن کاملParallel heuristic search in Haskell
Parallel heuristic search algorithms are widely used in artificial intelligence. This paper describes novel parallel variants of two standard sequential search algorithms, the standard Davis Putnam algorithm (DP); and the same algorithm extended with conflict-directed backjumping (CBJ). Encouraging preliminary results for the GpH parallel dialect of the non-strict functional programming languag...
متن کاملGPU Kernels as Data-Parallel Array Computations in Haskell
We present a novel high-level parallel programming model aimed at graphics processing units (GPUs). We embed GPU kernels as data-parallel array computations in the purely functional language Haskell. GPU and CPU computations can be freely interleaved with the type system tracking the two different modes of computation. The embedded language of array computations is sufficiently limited that our...
متن کامل